package com.qqtech.qquan.community.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.qqtech.core.frame.service.BaseService;
import com.qqtech.qquan.community.model.CommunityBase;
import com.qqtech.qquan.community.model.CommunityBaseQuery;
import com.qqtech.qquan.community.model.CommunityBaseVo;

public interface CommunityBaseService extends BaseService<CommunityBase> {
	/**
	 * 含距离Distance的社区列表，返回值BaseVo,可以模糊search查询like社区名字、拼音
	 * @param query
	 * @param pageable
	 * @return
	 */
	List<CommunityBaseVo> queryDistanceList(CommunityBaseQuery query, Pageable pageable);
	/**
	 * 含距离Distance的社区分页，返回值BaseVo,可以模糊search查询like社区名字、拼音
	 * 
	 * @param CommunityMessageQuery
	 *          search查询like社区名字、拼音
	 * @param pageable
	 * @return
	 */
	Page<CommunityBaseVo> queryDistancePage(CommunityBaseQuery query, Pageable pageable);

	/**
	 * pv+1再获取详情
	 * 
	 * @param id
	 * @return
	 */
	CommunityBase handleDetail(Integer id);

	/**
	 * 创建社区
	 * 
	 * @param communityBase
	 * @return
	 */
	int addCommunityBase(CommunityBase communityBase);

	/**
	 * 隐藏
	 * 
	 * @param id 社区id
	 * @return
	 */
	int hide(Integer id);

	/**
	 * 显示
	 * 
	 * @param id 社区id
	 * @return
	 */
	int show(Integer id);

	/**
	 * 社区通过公司后台验证
	 * 
	 * @param id 社区id
	 * @return
	 */
	int handleAuditPass(Integer id);
	
	/**
	 * 是否社区创建者
	 * @param userId
	 * @param communityId
	 * @return
	 */
	boolean isCommunityCreator(Integer userId, Integer communityId);
	/**
	 * 是否社区代理村长
	 * @param userId
	 * @param communityId
	 * @return
	 */
	boolean isCommunityAgent(Integer userId, Integer communityId);
}